// 空气质量评价
export class AirQualityEvaluation {
  static getAirQualityDescription(aqi: number): string {
    if (aqi >= 0 && aqi <= 50) {
      return '优(0-50)'
    } else if (aqi > 51 && aqi <= 100) {
      return '良(50-100)'
    } else if (aqi > 101 && aqi <= 150) {
      return '轻度污染(100-150)'
    } else if (aqi > 151 && aqi <= 200) {
      return '中度污染(150-200)'
    } else if (aqi > 201 && aqi <= 300) {
      return '重度污染(200-300)'
    } else if (aqi > 301 && aqi <= 500) {
      return '严重污染(300-500)'
    }
  }
  //获取能见度标准
  static getVisibilityDescription(visibility: number): string {
    if (visibility < 0.5) {
      return '极差'
    } else if (visibility >= 0.5 && visibility < 1) {
      return '很差'
    } else if (visibility >= 1 && visibility < 2) {
      return '差'
    } else if (visibility >= 2 && visibility < 5) {
      return '一般'
    } else if (visibility >= 5 && visibility < 10) {
      return '较好'
    } else if (visibility >= 10) {
      return '极好'
    }
  }
  /**
   * 将 RGB 颜色值转换为十六进制表示
   * @param r 红色值 (0-255)
   * @param g 绿色值 (0-255)
   * @param b 蓝色值 (0-255)
   * @returns 十六进制颜色字符串 (例如: #ff0000)
   */
  static rgbToHex(r: number, g: number, b: number): string {
    // 确保输入值在有效范围内
    const clamp = (value: number) => Math.max(0, Math.min(255, Math.round(value)))

    // 转换为十六进制并确保是两位数
    const toHex = (value: number) => {
      const hex = clamp(value).toString(16)
      return hex.length === 1 ? '0' + hex : hex
    }

    return `#${toHex(r)}${toHex(g)}${toHex(b)}`
  }
  /**
   * 判断紫外线强度
   */
  static getUVIndexDescription(uvIndex: string): string {
    const NuvIndex = Number(uvIndex)
    if (NuvIndex == 1) {
      return '最弱'
    } else if (NuvIndex == 2) {
      return '弱'
    } else if (NuvIndex == 3) {
      return '中等'
    } else if (NuvIndex == 4) {
      return '强'
    } else {
      return '很强'
    }
  }
}
export default AirQualityEvaluation
